package com.lili.model.order.entity.enumBean;

/**
 * 支付方式枚举,这个枚举类型，前端传来名字，我们根据名字获取enum的value存入数据库，
 * 再根据enum的value获取name传给前端，我目前直接存汉字，未使用
 *
 * @author Chopper
 * @since 2020/12/18 18:08
 */
public enum PaymentEnum {

    /**
     * 微信
     */
    WECHAT("wechatPlugin", "微信"),
    /**
     * 支付宝
     */
    ALIPAY("aliPayPlugin", "支付宝"),

    /**
     * 银联-云闪付
     */
    UNIONPAY("unionPayPlugin", "银联-云闪付"),
    /**
     * 余额支付
     */
    WALLET("walletPlugin", "余额支付"),
    /**
     * 线下转账
     */
    BANK_TRANSFER("bankTransferPlugin", "线下转账");

    /**
     * 插件id 调用对象，需要实现payment接口
     */
    private final String plugin;
    /**
     * 支付名称
     */
    private final String paymentName;

    public String getPlugin() {
        return plugin;
    }

    public String paymentName() {
        return paymentName;
    }

    /**
     * 根据支付方式名称返回对象
     *
     * @param name
     * @return
     */
    public static PaymentEnum paymentNameOf(String name) {
        for (PaymentEnum value : PaymentEnum.values()) {
            if (value.name().equals(name)) {
                return value;
            }
        }
        return null;
    }

    PaymentEnum(String plugin, String paymentName) {
        this.plugin = plugin;
        this.paymentName = paymentName;
    }

}
